%
%	Diploma thesis template 2005
%
%       author: lukas.silberbauer(at)gmx.at
%       based upon  "Diplomarbeit mit LaTeX" by Tobias Erbsland
%
%       published under the terms of
%
%  ----------------------------------------------------------------------------
%  "THE BEER-WARE LICENSE":
%  <lukas.silberbauer(at)gmx.at> wrote this file. As long as you retain this notice 
%  you can do whatever you want with this stuff. If we meet some day, and you think
%  this stuff is worth it, you can buy me a beer in return. 
%  ----------------------------------------------------------------------------
%
%
%

\chapter{User Interface}
\section{Main Menu, Join Game Menu, Settings Menu}
\subsection{Main Menu}
\label{sec:mainmenu}
The Main menu allows access to the various panels of the menu structure. Through the Main menu, the Join Game menu, Host Game menu and Settings menu can be reached.
\subsection{Join Game Menu}
The Join Game menu offers the choices between joining a game directly by entering the host IP and port, or browsing through the game list fetched from the master server that is specified in the client.ini configuration file.
\subsection{Settings Menu}
The Settings menu only has one setting: The user name. The user name is set to the system user name by default but can be changed here manually.

\begin{figure}[H]
  \begin{center}
    \subfigure[Main Menu]{\includegraphics[scale=0.4]{images/gui/mainmenu.jpg}}
    \subfigure[Join Game Menu]{\includegraphics[scale=0.4]{images/gui/joingamemenu.jpg}}
    \subfigure[Settings Menu]{\includegraphics[scale=0.4]{images/gui/settingsmenu.jpg}}
  \end{center}
  \caption{User Interface Menus}
\end{figure}

\section{Join IP Menu}
\label{sec:joinipmenu}
The Join IP menu has input fields to specify the host of the game that the user wants to join directly. Once hostname and port are entered, the user can select Join Game to join the game hosted at the entered address.
\begin{figure}{H}
	\begin{center}
   		\subfigure[Join IP Menu]{\includegraphics[scale=0.4]{images/gui/joinIPmenu.jpg}}
		\subfigure[BrowseGameMenu]{\includegraphics[scale=0.35]{images/gui/browsegamemenu.jpg}}
  	\end{center}
	\caption{Join IP and Browse Game Menu}
\end{figure}

\section{Browse Games Menu}
\label{sec:browsegamesmenu}

The Browse Game menu lists the games that are fetched from the master server. By clicking the refresh button, the game list in the table will be activated. Shown in the table are the game settings:
\begin{itemize}
	\item{Game name}
	\item{Current/Maximum Players}
	\item{Game Mode}
	\item{Custom game options (further discussed in the Host Game menu section)}
\end{itemize}

Furthermore, the user can join a game by clicking the game's table row and clicking the Join Game button.

\section{Host Game Menu}
\label{sec:hostgamemenu}

\begin{figure}{H}
  \begin{center}
    \subfigure[Default Options]{\includegraphics[scale=0.5]{images/gui/hostgamedefaultmenu.jpg}}
    \subfigure[Custom Options expanded]{\includegraphics[scale=0.5]{images/gui/hostgamecustommenu.jpg}}
  \end{center}
  \caption{Host Game Menus}
\end{figure}

The Host Game menu offers the functionality to start a new game and set the game's options.
Default game options include:

\begin{itemize}
	\item{Game Name}
	\item{Maximum Players}
	\item{Game Mode}
	\item{Remote Game: If selected, the game will be hosted on the master server specified in the client.ini and will be discoverable on the Browse Game menu for other clients. Otherwise, it will be hosted locally.}
\end{itemize}
Custon game options include:
\begin{itemize}
	\item{Normal Bubbles Colors: Sets how many different colored bubbles can be spawned. Minimum is 2, maximum is 8, default is 4.}
	\item{GhostBubbles/RainBowBubbles/BlazingBubbles: Enables whether these special bubbles can spawn or not.}
	\item{Gravity: Enables gravity that decelerates the bubbles downwards are they are shot from the cannon. The gravity constant can be set in the server.ini file.}
	\item{Wind: Enables wind that accelerates bubbles sidewards once they are shot from the cannon.}
	\item{FlippedField: Will flip the playing field sideways, bubbles are now shot from the left to the right.}
	\item{Teams: Enables teamplay. There are 2 teams that players can join from the Game Lobby menu.}
\end{itemize}\newpage

\section{Game Lobby Menu}
\label{sec:gamelobbymenu}
\begin{wrapfigure}{l}{0.4\textwidth}
    \begin{center}
       	\includegraphics[scale=0.35]{images/gui/gamelobbymenu.jpg}
    \end{center}
	\caption{Game Lobby Menu}
\end{wrapfigure}
The Game Lobby menu displays the current game status: It shows tables for every team that can be joined, and within those tables the current members of those teams. If teams are disabled, there is only one table that shows the current players in this game. Players may swap slots by clicking on open table rows. The host of the game has the ability to start the game by clicking the start button.